function restoreArray(adjacentPairs: number[][]): number[] {
    let nodes: Map<number,number[]> = new Map();
    adjacentPairs.forEach(([a,b]) => {
        if(nodes.has(a)){
            nodes.get(a).push(b);
        }
        else{
            nodes.set(a,[b]);
        }
        if(nodes.has(b)){
            nodes.get(b).push(a);
        }
        else{
            nodes.set(b,[a]);
        }
    })
    let entries = Array.from(nodes.entries());
    let length = entries.length;
    let ret: number[] = [];
    for( let [n,links] of entries){
        if(links.length === 1){
            let i = 1;
            ret.push(n);
            let last = n,now = links[0];
            while(i<length){
                let [a,b] = nodes.get(now);
                ret.push(now);
                [last,now] = [now,a === last ? b:a];
                i++;
            }
            return ret;
        }
    }
};

// 执行用时：
// 444 ms
// , 在所有 TypeScript 提交中击败了
// 100.00%
// 的用户
// 内存消耗：
// 94.9 MB
// , 在所有 TypeScript 提交中击败了
// 33.33%
// 的用户